Soru & Cevap

Server Bağlantı Kontrolü ...

11.03.2014 - 04:19

Merhaba asynctask ile bir url adresinde baglantı varmı yokmu(server yanıt veriyor mu vermiyor mu) kontrol ettirmeye calısıyorum. Ancak dialog penceresi ekranda görünüp kayboluyor o arada yayın gelene kadar ekran boş kalıyor. Ben yayın gelene kadar dialog penceresinin ekranda kalmasını yayın geldiginde kapanmasını, eğer yayın yoksa yayına ulasılamadı mesajı verdirmek istiyorum. Konuyla ilgili yardımcı olursanız cok sevinirim.

kodlar;

package com.example;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
import java.net.URL;
import java.net.URLConnection;
import java.net.UnknownHostException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;

import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;

public class MainActivity extends Activity {
    
    
    
    public static final int timeout = 5000;
    public static final String TAG = "MainActivity";
    public static final String urls = "http://85.95.248.115:8014/";

    private ToggleButton button;
    private Button btn;
    private TextView view;
    public boolean isOnline;
    int one = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        
        
        Log.v("TAG", "density=" + getResources().getDisplayMetrics().densityDpi);
        button = (ToggleButton) findViewById(R.id.toggleButton1);
        button.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(CompoundButton buttonView,
                    boolean isChecked) {
                if (isChecked) {
                    /*Intent serviceIntent = new Intent(getApplicationContext(),
                            Servis.class);
                    startService(serviceIntent);*/
                    new YayinAlın().execute();
                    
                } else {
                    Intent stop = new Intent(getApplicationContext(),
                            Servis.class);
                    stopService(stop);
                }
            }
        });
        
        view = (TextView) findViewById(R.id.textView1);
        
    }

    private class YayinAlın extends AsyncTask<String, String, String> {

        
        private ProgressDialog pDialog;
        private Activity context;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Yayın Alınıyor...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }

        @Override
        protected String doInBackground(String... params) {
                
            try {
                    Intent serviceIntent = new Intent(getApplicationContext(),
                    Servis.class);
                    startService(serviceIntent);
                    isConnectedtoServer(urls, timeout);

            } catch (Exception e) {
                e.printStackTrace();
            }

        return null;
        }

        @Override
        protected void onPostExecute(String result) {                    
            pDialog.dismiss();
                        
        }
        
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    

    public boolean isConnectedtoServer(String urls, int timeout) {
        try {
        
            URL serverURL = new URL(urls);
            URLConnection urlconn = serverURL.openConnection();
            urlconn.setConnectTimeout(timeout);
            urlconn.connect();
            InetAddress.getByName(urls).isReachable(timeout);
            return true;
        } catch (IOException e) {
            Log.e(TAG, e.getLocalizedMessage(), e);
        } catch (IllegalStateException e) {
            Log.e(TAG, e.getLocalizedMessage(), e);
        }
        return true;   

    }
    public void connectionReturn() {
        boolean a;
        a = this.isConnectedtoServer(urls, timeout);
        if (a == true) {
            Toast.makeText(getApplicationContext(), "Bağlandı", Toast.LENGTH_LONG).show();

        } else {
            Toast.makeText(getApplicationContext(), "Bağlanamadı", Toast.LENGTH_LONG).show();
        }

    }
   

5 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-2903-1435872975.png
oshamahue
11.03.2014 - 09:10

istek atacağınız url'i browser'a yazıp deneyebilirsiniz. chrome'da advanced rest client eklentisi ile post isteklerini de deneyebilirsiniz.